package com.ruoyi.project.mgr.adjust.service;

import com.ruoyi.project.mgr.adjust.domain.MgrAdjustNotice;
import com.ruoyi.project.mgr.adjust.vo.AdjustListVO;
import com.ruoyi.project.mgr.adjust.domain.MgrAdjustApply;
import com.ruoyi.project.mgr.adjust.vo.NoticeListVO;

import java.util.List;

/**
 * 调课申请Service接口
 *
 * @author .
 * @date 2020-02-15
 */
public interface IMgrAdjustApplyService
{
    /**
     * 查询调课申请
     *
     * @param id 调课申请ID
     * @return 调课申请
     */
    public MgrAdjustApply selectMgrAdjustApplyById(Long id);

    /**
     * 查询调课申请列表
     *
     * @param mgrAdjustApply 调课申请
     * @return 调课申请集合
     */
    public List<MgrAdjustApply> selectMgrAdjustApplyList(MgrAdjustApply mgrAdjustApply);

    /**
     * 新增调课申请
     *
     * @param mgrAdjustApply 调课申请
     * @return 结果
     */
    public int insertMgrAdjustApply(MgrAdjustApply mgrAdjustApply);

    /**
     * 修改调课申请
     *
     * @param mgrAdjustApply 调课申请
     * @return 结果
     */
    public int updateMgrAdjustApply(MgrAdjustApply mgrAdjustApply);

    /**
     * 批量删除调课申请
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMgrAdjustApplyByIds(String ids);

    /**
     * 删除调课申请信息
     *
     * @param id 调课申请ID
     * @return 结果
     */
    public int deleteMgrAdjustApplyById(Long id);


    public List<AdjustListVO> selectAdjustApplyList(MgrAdjustApply mgrAdjustApply);

    /**
     * 同意申请调课
     * @param adjustApply
     * @return
     */
    public int agree(MgrAdjustApply adjustApply);

    /**
     * 拒绝申请调课
     * @param mgrAdjustApply
     * @return
     */
    public int refuse(MgrAdjustApply mgrAdjustApply);

    /**
     * 查询学生所在班级的调课信息
     * @param clazzId
     * @return
     */
    public List<NoticeListVO> selectStudentNotice(Long clazzId);

    /**
     * 查询教师调课信息
     * @param teacherId
     * @return
     */
    public List<NoticeListVO> selectTeacherNotice(Long teacherId);
}